#pragma once
#include <spdlog/spdlog.h>
#include <vsg/all.h>
#include <entt/entt.hpp>
#include "qbe/src/ecs/app.hpp"
#include "qlib/all.h"
#include "shader.h"

#include "qbe/src/ecs/query.hpp"

namespace qbe::utils::TempRender {
class RenderLabel {
 public:
  RenderLabel(vsg::ref_ptr<vsg::Options> options, std::vector<qlib::Label::s_ptr> labels);
  ~RenderLabel();

  void setLayerType(vsg::vec4 color, std::string line_type);
  void updateData(std::vector<qlib::Label::s_ptr> labels);
  void setShowHide(bool is_show);

  vsg::ref_ptr<vsg::Switch> switchObject;
 private:
  std::vector<qlib::Label::s_ptr> m_labels; 
  vsg::ref_ptr<vsg::MatrixTransform> transform;
  vsg::ref_ptr<LineMeshNode> line_node;
};

}  // namespace qbe::utils::TempRender